package com.ys.p1.doubleloop;

/**
 * @author CodeYang
 * @Description * 5、[难]搬砖问题：36块砖，36个人搬，男搬4块，女搬3块，两个小孩搬1块，要求一次搬完，问需要男、女、小孩各多少人？
 * * 姐妹题：百钱百鸡。
 * @Date 2020/12/8 10:43
 */
public class DoubleLoopTest04 {
    /**
     * 分析思路:
     * 题意: 男人人数+女人人数+小孩人数 (合计) ==36 && 男人搬砖数 + 女人搬砖数 + 小孩搬砖数 ==36
     * 1: 男人人数的取值范围 [0,9) ---36/4==9 但是不能取9,因为不能全是男人
     * 2: 女人人数的取值范围 [0,12)
     * 3: 小孩人数的取值范围 [0,36) 最多都只能有36人,(这里不能超过36)
     * ----
     * 然后使用嵌套循环来匹配,最后得出 男, 女 , 小孩 人数各多少人
     *
     * @param args
     */
    public static void main(String[] args) {
        // 外层循环 : 用于控制男人的人数
        for (int x = 0; x < 9; x++) {
            // 内层循环,用于控制女人人数
            for (int y = 0; y < 12; y++) {
                // 因为小孩人数只能是偶数,所以, z+=2
                for (int z = 0; z < 36; z += 2) {
                    // 如果 x+y+z ==36 && 4*x+3*y+z/2==36 则证明满足题意跳出循环
                    if (x + y + z == 36 && 4 * x + 3 * y + z / 2 == 36) {
                        System.out.println("男人:" + x + "女人:" + y + "小孩:" + z);
                        break;
                    }
                }
            }
        }
    }
}
